
#pragma once

#include "View.h"
#include "Map.h"
#include "hge.h"

class hgeGUI;

class MapView : public View
{
public:

	// Constructor
	MapView();

	// Destructor
	~MapView();

	// Initialize the view area to defaul values
	void InitializeViewArea();

protected:

	// Enter
	void Enter();

	// Process
	View *Process();

	// Render
	void Render();

	// Background
	hgeQuad background;

	// Gui
	hgeQuad guiQuad;

	// Map tile sets
	int currentTileSet;

	// Map
	Map *map;

	// Current view area
	hgeRect viewArea;

	// Called when exitting view
	void Exit();

	// Process the gui (can be overwritten)
	virtual bool ProcessGui(const float dt);

	// Processes the keys and mouse (can be overwritten)
	virtual bool ProcessInput(const float dt);

	// Rendering Functions
	void RenderMap(bool drawLines);
	void RenderGui();
};